""" модуль имитации получения IP аддресов """

import asyncio

from pddnsc.base import BaseSourceProvider


class DummySource(BaseSourceProvider):
    """Имитация получения пустых адресов"""

    async def fetch_v4_impl(self) -> str:
        result = await asyncio.sleep(self.config.get("delay", 1), result="")
        return result

    async def fetch_v6_impl(self) -> str:
        result = await asyncio.sleep(self.config.get("delay", 1), result="")
        return result


class FakeSource(BaseSourceProvider):
    """Имитация получения заданных в конфигурации адресов

    Конфигурация:

    - ipv4: строка IPv4, по умолчанию "127.0.0.1"
    - ipv6: строка IPv6, по умолчанию "::1"
    """

    async def fetch_v4_impl(self) -> str:
        result = await asyncio.sleep(
            self.config.get("delay", 1), result=self.config.get("ipv4", "127.0.0.1")
        )
        return result

    async def fetch_v6_impl(self) -> str:
        result = await asyncio.sleep(
            self.config.get("delay", 1), result=self.config.get("ipv6", "::1")
        )
        return result
